<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .a{
            width: 300px;
            height: 300px;
            background-color: red;
        }
        .b{
            width: 200px;
            height: 200px;
            background-color: gray;
        }
        .c{
            width: 100px;
            height: 100px;
            background-color: palegreen;
        }
    </style>
</head>
<body>
    <div class="a">
        <div class="b">
            <div class="c"></div>
        </div>
    </div>





    <button id="btn">点我</button>
    <script src="./js/jquery.min.js"></script>
    <script>
        /* 绑定事件 */
        // let btn = document.querySelector("#btn")
        function fn(e){
            console.log("是一个事件!",e);
        }
        // btn.addEventListener("click",fn)
        // btn.removeEventListener("click",fn)





        /* 
            JQ里面的事件绑定
            on  => 绑定事件
        */
        /* 
            1. 方式一
                参数一  事件类型
                参数二  事件函数
        */
        // $("button").on("click",function(){
        //     console.log("绑定了一个点击事件");
        // })






        /**
         *  2. 方式二
         *      参数一  事件类型
         *      参数二  事件参数
         *      参数三  事件函数
         */
        // $("button").on("click",{name:"文渊"},function(e){
        //     console.log("我是文渊,你好!",e.data.name);
        // })






        /* 
            3. 方式三
                参数一  事件类型
                参数二  事件委托(事件委派)
                参数三  事件函数
        */
        // $(".a").on("click",'.c',function(e){
        //     console.log(e);
        // })








        /* 
            4.方式四
                参数一  事件类型
                参数二  事件委派
                参数三  事件参数
                参数四  事件函数
        */
        // $(".a").on("click",'.b',{name:"文种玉"},fn)








        

        /* 
            5.解绑事件
                off => 
                    参数一  解绑的事件类型
                    参数二  对那个函数进行解绑
        */
        // $("button").on("click",fn).off("click",fn)






        /* 
            6.触发一次事件,
                one => 用法与on一样
        */
        // $("button").one("click",function(e){
        //     console.log(e);
        // })
    </script>
</body>
</html>